/***********************************************************************************
 * 文 件 名   : main.c
 * 负 责 人   : 张江锋
 * 创建日期   : 2021年6月30日
 * 文件描述   : 主函数入口
 * 版权说明   : Copyright (c) 2008-2021   Personal. All rights reserved.
 * 其    他   :
 * 修改日志   :
***********************************************************************************/
#include "stm32f4xx.h"
#include "Delay.h"
#include "ControlUart.h"
#include "ModuleConfig.h"
#include "FrameDataParser.h"

unsigned int g_uiProcessPackageNum = 0;
/***********************************************************************
 * 函数名称: PrintfUartRecvAll
 * 功能描述: 将fifo中所有的数据一次读空进行处理
 * 输入参数:
 * 输出参数:
 * 返 回 值:
 *  其   它:
 ***********************************************************************/
void  PrintfUartRecvAll()
{
	int    ix;
    int    iRet;
    unsigned int  uiBuffLen = 0;
    unsigned char  pucBuf[RING_BUFFER_SIZE];
	static  unsigned int  uiTmpRecord = 0;

    uiBuffLen = Ring_Buffer_Get_Lenght(&g_stRingBuff);
	if(uiBuffLen>0)
	{
	    Ring_Buffer_Read_String(&g_stRingBuff, pucBuf, uiBuffLen);
		for(ix = 0;ix < uiBuffLen; ix++)
		{
			printf("  0x%x",pucBuf[ix]);
		}
		g_uiProcessPackageNum++;
		//printf("\r\nLost Package Num = %d.\r\n",g_uiLostDataLen);
		printf("\r\nLost Package Num = %d.\r\n",g_uiLostPackNum);
		printf("\r\nProcess PackageNum  = %d.\r\n",g_uiProcessPackageNum);
	}
}
/***********************************************************************
 * 函数名称: main
 * 功能描述:
 * 输入参数:
 * 输出参数:
 * 返 回 值:
 *  其   它:
 ***********************************************************************/
int main(void)
{
	int iRet = 0;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    delay_init();
    ControlUartInit(UART0_CHANNEL, 115200);
    ControlUartInit(UART3_CHANNEL, 115200);
	iRet = CreatRingBuffer();
	if(iRet < 0)
	{
		printf("Ring Buffer Init fail.\r\n");
		return 0;
	}

	iRet = CreateFrameBufferFun1(&g_stFrame,20);
	if(iRet <= 0)
	{
		printf("FrameBuffer Init fail.\r\n");
		return 0;
	}
	printf("system is runing.\r\n");
    while (1)
    {
    	PrintfUartRecvAll();
        delay_ms(10);  //用Delay方式来模拟主机在执行其它功能任务
    }
}



